2023年10月13日
川俣晶の縁側ソフトウェア技術雑記 total 447 count

.NET Maui BlazorアプリはBlazor Server相当らしいという仮説

Written By: 川俣 晶連絡先

問題提起 §

 .NET Maui Blazorアプリで抱え込んだ謎がある。

  • Console.WriteLineでコンソールにデバッグメッセージを出せないのはなぜか
  • リロードしてもプロセス空間がリセットされないのはなぜか

 ページ切換がサクサクできることから、Blazor WebAssembly相当の機能が動いていると考えると謎である。

結論 §

 Blazor Server相当の機能が動いている。

 サクサク動くのは、Blazor Server相当の機能とWebブラウザ相当の機能が直結しているから。

論証 §

 File.ReadAllTextでローカルファイルにアクセスできた。

 (Blazor WebAssembly相当ならできないはずである)

リロードしてもプロセス空間がリセットされない理由 §

 リロードしてリセットされるのはWebブラウザ相当の機能のWebAssembly実行環境のみで、サーバ側の環境はリセットされない。だから動作フローとしてはリロードされると最初から実行され直すが、staticなメンバーの値は一切リセットされていない。

感想 §

 サクサクとローカルで動くのならBlazor Serverの方が自由度が高くていいよね、という単純な話。これだとBlazor Serverの2大ハンデ「複数ユーザーへの対処が面倒くさい」「通信のオーバーヘッドと複数ユーザーへのサービスで重くなりがち」が消えるので、実用性が高まる。ただし動作の細部が違うので、Blazor WebAssemblyとのRazorライブラリとの共用は要注意。